Use case: UART RX in interrupt mode ¶
Sequence diagram ¶
Code snippet ¶
|
HAL1 |
HAL2 |
|---|---|
#define DATA_TO_RECEIVE_SIZE 256
uint8_t aRxBuffer[DATA_TO_RECEIVE_SIZE];
UART_HandleTypeDef huart;
/* Ensure that all required peripherals
(USART, GPIO,NVIC etc.) are configured properly
/*
...
*/
/* UART register Receive complete user callback */
HAL_UART_RegisterCallback(&huart, HAL_UART_RX_CB_ID,
UART_RxCpltCallback);
/* Start a UART Process in interruption mode */
HAL_UART_Receive_IT(&huart, aRxBuffer,
DATA_TO_RECEIVE_SIZE)
|
#define DATA_TO_RECEIVE_SIZE 256
uint8_t aRxBuffer[DATA_TO_RECEIVE_SIZE];
hal_uart_handle_t huart;
/* Ensure that all required peripherals
(USART, GPIO,NVIC etc.) are configured properly
/*
...
*/
/* UART register Receive complete user callback */
HAL_UART_RegisterRxCpltCallback(&huart, UART_RxCpltCallback);
/* Start a UART Process in interruption mode */
HAL_UART_Receive_IT(&huart, aRxBuffer,
DATA_TO_RECEIVE_SIZE)
|
Key changes ¶
HAL2 provides a dedicated registration API for RX completion callbacks:
HAL_UART_RegisterRxCpltCallback().HAL2 RX completion callback includes an RX event argument (for example
HAL_UART_RXEVENT_TC).

